<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>优惠券列表</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="{__STATIC__}/layuiAdmin/layui/css/layui.css" rel="stylesheet">
    <link href="{__STATIC__}/layuiAdmin/adminui/dist/css/admin.css" rel="stylesheet">
    <link href="{__STATIC__}/layuiAdmin/style/style.css" rel="stylesheet">
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-card">
            <div class="layui-card-body">
                <div style="padding-bottom: 10px;">
                    <button class="layui-btn layui-btn-normal btn-top" data-type="add">添加优惠券</button>
                    <button class="layui-btn layui-btn-info btn-top" data-type="batchDel">批量删除</button>
                    <div class="layui-form search_ctr">
                        <div class="layui-form-item">
                            <div class="layui-inline">
                                <div class="layui-input-inline w200">
                                    <input type="text" name="keys" placeholder="输入关键词查询" autocomplete="off" class="layui-input">
                                </div>
                                <button class="layui-btn layui-btn-normal" lay-submit lay-filter="LAY-search">查询</button>
                            </div>
                        </div>
                    </div>
                </div>

                <table id="LAY-table" lay-filter="LAY-table"></table>
                <script type="text/html" id="amount">
                    {{ d.send_amount }} / {{ d.get_amount }}
                </script>
                <script type="text/html" id="per_amount">
                    {{#  if(d.per_amount == 0){ }}
                    不限
                    {{#  } else { }}
                    {{d.per_amount}}
                    {{#  } }}
                </script>
                <script type="text/html" id="type">
                    {{#  if(d.type == 1){ }}内部券{{#  } }}
                    {{#  if(d.type == 2){ }}公开券{{#  } }}
                    {{#  if(d.type == 3){ }}会员券{{#  } }}
                    {{#  if(d.type == 4){ }}线下券{{#  } }}
                </script>
                <script type="text/html" id="utype">
                    {{#  if(d.use_type == 1){ }}
                    指定商品
                    {{#  } else { }}
                    所有商品
                    {{#  } }}
                </script>
                <script type="text/html" id="state">
                    {{#  if(d.state == -1){ }}
                    <span class="layui-badge-dot layui-bg-gray"></span>已结束
                    {{#  } }}
                    {{#  if(d.state == 0){ }}
                    <span class="layui-badge-dot layui-bg-gray"></span>未开始
                    {{#  } }}
                    {{#  if(d.state == 1){ }}
                    <span class="layui-badge-dot layui-bg-blue"></span>发放中
                    {{#  } }}
                    {{#  if(d.state == 2){ }}
                    <span class="layui-badge-dot layui-bg-gray"></span>已领完
                    {{#  } }}
                </script>
                <script type="text/html" id="tableBar">
                    <a class="link-text" lay-event="show">查看</a>
                    <div class="link-line"></div>
                    <a class="link-text" lay-event="edit">编辑</a>
                    <div class="link-line"></div>
                    <a class="link-text" lay-event="del">删除</a>
                </script>

            </div>
        </div>
    </div>
</body>
</html>
<script src="{__STATIC__}/layuiAdmin/layui/layui.js"></script>
<script>
    layui.config({
        base: '{__STATIC__}/layuiAdmin/' // 静态资源所在路径
    }).use(['index', 'layer', 'table', 'form'], function(){
        let $ = layui.$;
        let layer = layui.layer;
        let table = layui.table;
        let form = layui.form;

        //初始化列表
        table.render({
            elem: '#LAY-table'
            ,url: "{:url('getList')}"
            ,cols: [[
                {type: 'checkbox', fixed: 'left'}
                ,{field: 'id', width: 80, title: 'ID', sort: true}
                ,{field: 'title', minWidth:180, title: '名称'}
                ,{field: 'min_price', width: 120, title: '消费门槛', align:'center'}
                ,{field: 'cut_price', width: 120, title: '优惠金额', align:'center'}
                ,{field: 'per_amount', width: 120, title: '每人限领', align:'center', templet: '#per_amount'}
                ,{field: 'send_amount', width: 140, title: '发放量/已领取', align:'center', templet: '#amount'}
                ,{field: 'type', width: 120, title: '优惠券类型', align:'center', templet: '#type'}
                ,{field: 'use_type', width: 120, title: '使用范围', align:'center', templet: '#utype'}
                ,{field: 'state', width: 100, title: '状态', align:'center', sort: true, templet: '#state'}
                ,{title: '操作', width: 160, align:'center', fixed: 'right', toolbar: '#tableBar'}
            ]]
            ,page: true
            ,limit: 20
            ,height: 'full-100'
            ,text: {none: '暂无相关数据'}
        });

        //监听搜索
        form.on('submit(LAY-search)', function(data){
            let field = data.field;
            //执行重载
            table.reload('LAY-table', {
                url: "{:url('getList')}"
                ,where: field
                ,page: {
                    curr: 1 //重新从第 1 页开始
                }
            });
        });

        //监听编辑+单个删除
        table.on('tool(LAY-table)', function(obj){
            let data = obj.data;
            if(obj.event === 'del'){
                layer.confirm('真的删除行么', function(index){
                    $.ajax({
                        type:"post",
                        url:"{:url('delete')}",
                        data: {
                            m_id:data.id
                        },
                        dataType:"json",
                        beforeSend: function () {
                            layer.load(1);
                        },
                        success:function(res){
                            layer.closeAll();
                            if(res.code == 0){
                                if(res.msg == 'success') {
                                    obj.del();
                                    layer.msg('删除成功');
                                } else {
                                    layer.msg(res.msg);
                                }
                            }
                            else {
                                layer.msg(res.msg);
                            }
                        }
                    });

                });
            } else if(obj.event === 'edit'){
                layer.open({
                    type: 2
                    ,title: '编辑优惠券'
                    ,content: "{:url('edit')}?id=" + data.id
                    ,maxmin: true
                    ,area: ['800px', '90%']
                    ,btn: ['确定', '取消']
                    ,yes: function(index, layero){
                        let iframeWindow = window['layui-layer-iframe'+ index];
                        let submitID = 'LAY-submit';
                        let submit = layero.find('iframe').contents().find('#'+ submitID);

                        //监听提交
                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
                            let field = data.field; //获取提交的字段
                            let m_goods_ids = [];
                            $.each(field, function(key, val) {
                                if(key.indexOf("m_goods") != -1){
                                    m_goods_ids.push(val);
                                }
                            });
                            m_goods_ids = m_goods_ids.toString();

                            //提交 Ajax 成功后，静态更新表格中的数据
                            $.ajax({
                                type:"post",
                                url:"{:url('save')}",
                                data: {
                                    m_title:field.m_title,
                                    m_min_price:field.m_min_price,
                                    m_type:field.m_type,
                                    m_cut_price:field.m_cut_price,
                                    m_amount:field.m_amount,
                                    m_per_amount:field.m_per_amount,
                                    m_use_time:field.m_use_time,
                                    m_use_type:field.m_use_type,
                                    m_goods_ids:m_goods_ids,
                                    m_white_label_id:0,
                                    m_black_label_id:0,
                                    b_date:field.b_date,
                                    e_date:field.e_date,
                                    m_id:field.m_id
                                },
                                dataType:"json",
                                beforeSend: function () {
                                    layer.load(1);
                                },
                                success:function(res){
                                    layer.close(layer.index);
                                    if(res.code == 0){
                                        layer.closeAll();
                                        table.reload('LAY-table',{where: {time:new Date()}}); //数据刷新
                                    }
                                    else {
                                        layer.msg(res.msg);
                                    }
                                }
                            });

                        });

                        submit.trigger('click');
                    }
                });
            } else if(obj.event === 'show'){
                layer.open({
                    type: 2
                    ,title: '优惠券领取详情'
                    ,content: "{:url('show')}?id=" + data.id
                    ,maxmin: true
                    ,area: ['90%', '90%']
                });
            }
        });


        //头部操作按钮
        $('.btn-top').on('click', function(){
            let type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });

        let active = {
            batchDel: function(){
                let checkStatus = table.checkStatus('LAY-table');
                let checkData = checkStatus.data //得到选中的数据
                let ids = "0";
                if(checkData.length === 0){
                    return layer.msg('请选择数据');
                }
                $.each(checkData,function(key,value){
                    ids = ids + "," + checkData[key]['id'];
                });
                layer.confirm('确定删除吗？', function(index) {
                    $.ajax({
                        type:"post",
                        url:"{:url('delete')}",
                        data: {
                            m_id:ids
                        },
                        dataType:"json",
                        beforeSend: function () {
                            layer.load(1);
                        },
                        success:function(res){
                            layer.closeAll();
                            if(res.code == 0){
                                let msg = res.msg == 'success' ? '删除成功' : res.msg;
                                layer.msg(msg, {
                                    time: 2000
                                }, function(){
                                    table.reload('LAY-table',{where: {time:new Date()}}); //数据刷新
                                });
                            }
                            else {
                                layer.msg(res.msg);
                            }
                        }
                    });
                });
            }
            ,add: function(){
                layer.open({
                    type: 2
                    ,title: '添加优惠券'
                    ,content: "{:url('create')}"
                    ,maxmin: true
                    ,area: ['800px', '90%']
                    ,btn: ['确定', '取消']
                    ,yes: function(index, layero){
                        let iframeWindow = window['layui-layer-iframe'+ index];
                        let submitID = 'LAY-submit';
                        let submit = layero.find('iframe').contents().find('#'+ submitID);

                        //监听提交
                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
                            let field = data.field; //获取提交的字段
                            let m_goods_ids = [];
                            $.each(field, function(key, val) {
                                if(key.indexOf("m_goods") != -1){
                                    m_goods_ids.push(val);
                                }
                            });
                            m_goods_ids = m_goods_ids.toString();

                            //提交 Ajax 成功后，静态更新表格中的数据
                            $.ajax({
                                type:"post",
                                url:"save.html",
                                data: {
                                    m_title:field.m_title,
                                    m_min_price:field.m_min_price,
                                    m_type:field.m_type,
                                    m_cut_price:field.m_cut_price,
                                    m_amount:field.m_amount,
                                    m_per_amount:field.m_per_amount,
                                    m_use_time:field.m_use_time,
                                    m_use_type:field.m_use_type,
                                    m_goods_ids:m_goods_ids,
                                    m_white_label_id:0,
                                    m_black_label_id:0,
                                    b_date:field.b_date,
                                    e_date:field.e_date
                                },
                                dataType:"json",
                                beforeSend: function () {
                                    layer.load(1);
                                },
                                success:function(res){
                                    layer.close(layer.index);
                                    if(res.code == 0){
                                        layer.closeAll();
                                        table.reload('LAY-table',{where: {time:new Date()}}); //数据刷新
                                    }
                                    else {
                                        layer.msg(res.msg);
                                    }
                                }
                            });
                        });
                        submit.trigger('click');
                    }
                });
            }
        };

    });
</script>